package com.way.materialpreference;

import android.content.Context;
import android.content.res.TypedArray;
import android.support.v7.widget.SwitchCompat;
import android.util.AttributeSet;
import android.view.View;

import com.way.doughnut.R;

public class SwitchPreference extends TwoStatePreference {

    public SwitchPreference(Context context) {
        super(context);
        init(context, null, 0, 0);
    }

    public SwitchPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context, attrs, 0, 0);
    }

    public SwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context, attrs, defStyleAttr, 0);
    }

    public SwitchPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        init(context, attrs, defStyleAttr, defStyleRes);
    }

    private void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        TypedArray typedArray = context.obtainStyledAttributes(attrs, new int[]{
                android.R.attr.summaryOn, android.R.attr.summaryOff, android.R.attr.disableDependentsState
        }, defStyleAttr, defStyleRes);

        setSummaryOn(typedArray.getString(0));
        setSummaryOff(typedArray.getString(1));
        setDisableDependentsState(typedArray.getBoolean(2, false));

        typedArray.recycle();

        setWidgetLayoutResource(R.layout.mp_switch_preference);
    }

    @Override
    protected void onBindView(View view) {
        super.onBindView(view);

        SwitchCompat switchCompat = (SwitchCompat) view.findViewById(R.id.switch_compat);
        switchCompat.setChecked(isChecked());

        syncSummaryView(view);
    }
}
